package com.am.service;

import com.am.output.AMConsoleOutput;
import com.am.output.IAMOutput;

public class ServiceFactory {
	private static ServiceFactory instance = new ServiceFactory();

	public static ServiceFactory getInstance() {
		return instance;
	}

	private CellFactory cellFactory;
	private IAMOutput outputService;
	private AxonFactory axonFactory;
	private HippoCampusFactory hippoCampusFactory;

	public ServiceFactory() {
		cellFactory = new CellFactory();
		outputService = new AMConsoleOutput();
		axonFactory = new AxonFactory();
		hippoCampusFactory = new HippoCampusFactory();
	}

	public AxonFactory getAxonFactory() {
		return axonFactory;
	}

	public HippoCampusFactory getHippoCampusFactory() {
		return hippoCampusFactory;
	}

	public CellFactory getCellFactory() {
		return cellFactory;
	}

	public IAMOutput getOutputService() {
		return outputService;
	}
}
